module.exports = () => {
  // console.log("hello world");
  let total = 0;
  // for (var i = 0; i < 3; i++) {
  //   for (var i = 0; i < 3; i++) {
  //     console.log(total++);
  //   }
  // }
  // for (let i = 0; i < 3; i++) {
  //   for (let i = 0; i < 3; i++) {
  //     console.log(total++);
  //   }
  // }
  var element = [{}, {}, {}];
  // for (var i = 0; i < element.length; i++) {
  //   element[i].onclick = function () {
  //     console.log(i);
  //   }
  // }// var会导致i是全局变量，每次都会更改
  // for (var i = 0; i < element.length; i++) {
  //   element[i].onclick = function (i) {
  //     return function () {
  //       console.log(i);
  //     }
  //   }(i);
  // }// 通过函数作用域来摆脱全局变量i的影响， 通过闭包实现函数作用域替换全局作用域

  // for (let i = 0; i < element.length; i++) {
  //   element[i].onclick = function () {
  //     console.log(i);
  //   }
  // }// 通过let块级作用域摆脱全局变量i的影响
  // element[1].onclick();
  // element[2].onclick();

  // for (let i = 0; i < 3; i++) {
  //   let i = "hello world";
  //   console.log(i);
  // } // for循环中有两层作用域， 从而导致for循环中的循环体可以定义与循环函数一样的东西

  // console.log(tishengwar);
  // console.log(tishenglet);
  // var tishengwar = "kkk";
  // let tishenglet = "kkkkk"; // let不具备变量提升的功能
}